/************************************************************************

								Heroes IV
					  Copyright 2000, The 3DO Company

	------------------------------------------------------------------
  						       building_traits.h

	$Header: /game/building_traits.h $

	$NoKeywords: $

 ************************************************************************/

#ifndef BUILDING_TRAITS_H_INCLUDED
#define BUILDING_TRAITS_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

// kill the 255+ character identifier warning.  Templates tend to exceed that easily.
#pragma warning( disable: 4786 )

#include <string>
#include <vector>
#include "material_array.h"

enum t_creature_type;
enum t_town_type;
enum t_town_building;
enum t_town_image_level;
enum t_two_way_facing;

struct t_building_traits
{
	char const*      keyword; // used to find building in external resources
	std::string      name;
	t_material_array cost;
	std::string      help_text;
	t_creature_type  creature;  // creature generated by this building, if any
};

t_building_traits const& get_traits( t_town_type town, t_town_building building );

char const* get_town_image_keyword( t_town_image_level level );
char const* get_town_model_name( t_town_type town, t_town_image_level image_level,
								 t_two_way_facing facing );

std::vector<t_creature_type> const& get_portal_creature_types();

#endif // BUILDING_TRAITS_H_INCLUDED